非線形回帰分析 - 15

指数関数のパラメータの推定

a1,をシフト

\(\Large \displaystyle y_i = a_0 \ Exp (- a_1 x_i) \)

 

a0       9.4978 9.7007 9.8720 10.0150 10.0569 10.0962 10.0962 10.2822 10.3480
a1       0.4099 0.4399 0.4699 0.4999 0.5099 0.5199 0.5499 0.5799 0.6099
δ       -0.1 -0.07 -0.04 -0.01 0 0.01 0.04 0.07 0.1
                         
                         
                         
i x y   \( \hat{y} \)
1 0 10   9.4978 9.7007 9.8720 10.0150 10.0569 10.0962 10.0962 10.2822 10.3480
2 2 4   4.1842 4.0247 3.8573 3.6853 3.6274 3.5695 3.3616 3.2242 3.0558
3 3 2   2.7772 2.5924 2.4111 2.2355 2.1785 2.1224 1.9397 1.8054 1.6606
4 4 1   1.8433 1.6698 1.5071 1.3561 1.3084 1.2620 1.1193 1.0110 0.9024
5 6 0.5   0.8121 0.6928 0.5889 0.4990 0.4719 0.4462 0.3727 0.3170 0.2665
6 9 0.1   0.2375 0.1851 0.1438 0.1114 0.1022 0.0938 0.0716 0.0557 0.0428
         
S (\(y_i - \hat{y} \)の平方和)       1.7177 0.9342 0.4728 0.2817

0.2698
(Se)

0.2812 0.4517 0.7550 1.1951
dS (Seとの差分)       1.4479 0.6644 0.2030 0.0119 0 0.0113 0.1819 0.4852 0.9253
                         

 

・残差平方和

推定値からの残差

\(\Large \displaystyle Se = \sum_{i=1}^{n} \left[ y_i -\hat{a_0} \ Exp(- \hat{a_1} \ x_i) \right]^2 \)

a0をシフトさせたときの,推定値からの残差

\(\Large \displaystyle Se = \sum_{i=1}^{n} \left[ y_i -a_0 \ Exp(- \hat{a_1} \ x_i) \right]^2 \)

であり,a1を,δ,だけシフトさせて,固定し,その際のa0の推定値をソルバーで推定しました.

dS,を見ていただけるとわかるように,推定値,Seが一番小さく,今回は,左右非対称に増加していることがわかります.

グラフ化すると,

二次曲線の近似を行うと,

\(\Large \displaystyle y = 0.2698 + 111.919 \ \delta^2 \)

ここで,分散値は,

・分散

\(\Large \displaystyle Ve = \frac{1}{n-2} \sum_{i=1}^{n} \left[ y_i -\hat{a_0} \ Exp(- \hat{a_1} \ x_i) \right]^2 = \frac{Se}{n-2} = \frac{0.2698}{6-2} = 0.067454 \)

であり(a0,a1,の二つのパラメータが2つあるので,自由度は,n-2),

\(\Large \displaystyle 111.919 \ \delta^2 = 0.067454 \)

となるδがSEとなるので,

\(\Large \displaystyle \delta^2 = \frac{ 0.067454}{111.919} = 0.00060 \)

\(\Large \displaystyle SE_{a_0} = \sqrt{\delta^2} =\color{red}{0.02455} \)

と推定できます.

 

・Rによる推定

Rでの近似を行ってみると,

プログラムは,

xx <- c(0,2,3,4,6,9)
yy <- c(10,4,2,1,0.5,0.1)
plot(xx,yy)
fm<-nls(yy~a0*exp(-a1*xx),start=c(a0=10,a1=0.5),trace=TRUE)
summary(fm)

で,結果は,

Parameters:
Estimate Std. Error t value Pr(>|t|)
a0 10.0569 0.25753 39.05 2.57E-06 ***
a1 0.50987 0.02455 20.77 3.18E-05 ***

となり,Kyplotにおいても,

推定値 標準誤差(SE)
A1 10.05689 0.257527
A2 0.50987 0.024553

と同じ結果となり,今回の推定値と,ぴったり一致,します.

ぴったり合いすぎるのが気になりますが....

前頁同様に,「統計解析の初歩」,の「1.2 非線形最小2乗法の基本的な考え方」には,

δのずらした値0.5 を変えると結果は異なり、近似標準誤差の精度が変わる
統計パッケージにより、近似標準誤差の値は幾分異なる

とあります.ここで,”0.5”,がどこから出てきたかはわかりません.そもそも横軸(x軸)の範囲に依存しちゃいますし..

そこで,σをとる値(±での平均値)でどう推定値が変わるかを調べてみました.その結果が,

近似曲線からの推定がぴったり合った割にはすべてのδでの推定値がRなどからの推定値に比べて下回っているのが気になりますが...

 

次に,指数関数+baseのパラメータ,について,確認してましょう.

 

l tr